Draft SVG est un module utilisé par Std Ouvrir,
Std Importer et
Std Exporter pour gérer le format de fichier SVG.
Dessin Inkscape exporté en SVG puis ouvert dans FreeCAD
Les objets SVG suivants peuvent être importés :
FreeCAD n'importera pas les objets path qui n'ont qu'un seul point (discussion du forum).
Les objets FreeCAD suivants peuvent être exportés :
SVG est un format 2D donc toutes les informations Z seront ignorées (tous les objets seront aplatis).
Lors de l'exportation, une unité utilisateur (px) équivaut à un millimètre.
Lors de l'importation, les attributs de largeur, hauteur et de la boîte de visualisation sont respectés. Tous les éléments sont mis à l'échelle de leur taille en millimètres, qui est l'unité interne de FreeCAD. Si le SVG ne contient pas d'informations sur sa taille physique, il est supposé avoir une résolution de 90 DPI.
L'utilisation d'unités absolues dans les attributs à l'intérieur du SVG doit être évitée. Les unités relatives comme em, ex et % ne sont pas supportées actuellement.
L'éditeur SVG Inkscape ne fonctionne actuellement qu'avec des documents de 90 DPI, quelle que soit l'unité sélectionnée dans Inkscape. Tous les résultats doivent être convertis en 90 DPI et arrondis à 6 décimales. Comme FreeCAD (et le standard SVG) est agnostique à la précision de l'arrondi fait dans Inkscape, ces valeurs ne seront pas arrondies au moment de la saisie. Les valeurs impaires en millimètres seront conservées.
Si vous souhaitez que l'importation SVG ne soit pas arrondie, travaillez sur les unités utilisateur (px) dans Inkscape. La mise à l'échelle peut être effectuée après l'importation dans FreeCAD ou en modifiant les attributs de largeur, de hauteur et de la boîte de visualisation.
Voir : Préférences Importer/Exporter.
Voir aussi : Autogenerated API documentation et Débuter avec les scripts FreeCAD.
Pour exporter des objets au format SVG, utilisez la méthode export
du module importSVG.
importSVG.export(exportList, filename)
filename
.Exemple :
import FreeCAD as App
import Draft
import importSVG
doc = App.newDocument()
polygon1 = Draft.make_polygon(3, radius=500)
polygon2 = Draft.make_polygon(5, radius=1500)
doc.recompute()
objects = [polygon1, polygon2]
importSVG.export(objects, "/home/user/Pictures/myfile.svg")